// Point Free
// Print Free: 我们可以把数据处理的过程定义成与数据无关的合成运算，不需要用到代表数据的那个参数，只把简单的运算步骤合成到一起，在使用这种模式之前我们需要定义一些辅助的基本运算函数
// 1.不需要指明处理的数据
// 2.只需要合成运算过程
// 3.需要定义一些辅助的基本运算函数

// const fp = require("lodash/fp");
// const f = fp.flowRight(fp.join("-"), fp.map(fp.toLower), fp.split(" "));

// 案例演示
// 非 Point free 模式
//Hello World  ====> hello_world
function fei(word) {
  return word.toLowerCase().replace(/\s+/g, "_");
}

// Point Free模式
//Hello World  ====> hello_world
// _.replace([(string = "")], pattern, replacement);
// [string=''] (string): 待替换的字符串。
// pattern (RegExp|string): 要匹配的内容。
// replacement (Function|string): 替换的内容。
const fp = require("lodash/fp");
const f = fp.flowRight(fp.replace(/\s+/g, "_"), fp.toLower);
console.log(f("Hello World"));
